package com.shijiezhijia.sjzjapp.demo;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;

import androidx.annotation.IdRes;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.shijiezhijia.sjzjapp.anntations.BindUtils;
import com.shijiezhijia.sjzjapp.anntations.BindView;
import com.shijiezhijia.sjzjapp.demo.inject.Bind;
import com.shijiezhijia.sjzjapp.demo.inject.BindListener;
import com.shijiezhijia.sjzjapp.demo.inject.EventBase;
import com.shijiezhijia.sjzjapp.demo.inject.InjectUtils;

/**
 * @Author tzc
 * @Time 2022/11/17 0017
 * Describe 注解+注解处理器 实现bindview等功能（会生成指定文件。编译时源码注解）
 * 注解+反射+动态代理 注入数据实现OnClick等功能（不会生成文件。运行时注解）
 */
public class AnnotationTestActivity extends AppCompatActivity {

    @BindView(R.id.tv_view)
    TextView textView;

    @Bind(R.id.tv_view2)
    TextView textView2;
    @BindListener(R.id.btn1)
    View.OnClickListener clickListener=new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.e("AnnotationTestActivity","我是通过注解+反射实现的单击 （还不需要动态代理）");
            textView2.setText("我是通过注解+反射实现的单击 （还不需要动态代理）");
        }
    };
    @BindListener(value = R.id.btn1,type = "setOnLongClickListener")
    View.OnLongClickListener longClickListener=new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            textView2.setText("我是通过注解+反射实现的长按 （还不需要动态代理）");
            return false;
        }
    };
    @Override
    protected void onCreate( Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_annotation_test);
        BindUtils.bind(this);
        InjectUtils.inject(this);
        textView.setText("我是通过注解处理器生成后编译过来的");
        textView2.setText("我是通过注解+反射实现的 （还不需要动态代理）");
    }

}
